package reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ResourceBundle;

/**
 * 利用反射属性反编译一个类的属性
 * --直接改变class的名字 就可以找出他的原属性
 */

public class ReflectTest06 {

    public static void main(String[] args) throws ClassNotFoundException {
        ResourceBundle bundle = ResourceBundle.getBundle("classinfo2");
        Class c = Class.forName(bundle.getString("className"));

        StringBuilder s = new StringBuilder();
     //   s.append("public class User{");//类名不要写死
     //   s.append("public class"+c.getSimpleName()+"{");//类的修饰符不要写死
        s.append(Modifier.toString(c.getModifiers())+ "class" + c.getSimpleName()+"{\n");

        Field[] fields = c.getDeclaredFields();
        for (Field f:fields){
            s.append("\t");//制表符
            s.append(Modifier.toString(f.getModifiers()));
            s.append(" ");
            s.append(f.getType().getSimpleName());
            s.append(" ");
            s.append(f.getName());
            s.append(" ");
            s.append(";\n");
        }

        s.append("}");
        System.out.println(s);

    }
}
